import { defineStore } from 'pinia'
import { ref } from 'vue'
import { userGetInfoService } from '../../api/user'

//useUserStore=>use+仓库名+Store
// 用户模块	token setToken removeToken 登录、退出、自身字段
export const useUserStore = defineStore(
    //'big-user'防止重名而加的前缀
    'big-user',
    () => {
        //
        const token = ref('') // 定义 token--初始化
        // const setToken = (t) => (token.value = t) // 设置 token
        const setToken = (newToken) => {
            token.value = newToken
        }
        const removeToken = () => {
            token.value = ''
        }

        //默认为对象
        const user = ref({})
        //请求获取信息这边设置个回调函数 一调用这方法就发请求或者获取数据
        const getUser = async () => {
            const res = await userGetInfoService() // 请求获取数据
            //请求得到的数据保存到user中
            user.value = res.data.data
        }
        
        const setUser = (obj) => (user.value = obj)

        //暴露出去
        return { token, setToken, removeToken,user,getUser,setUser}
    },
    {
        persist: true // 持久化
    }
)